package com.example.zxd;

import java.util.Scanner;

/**
 * 矩阵变换问题<p>
 * 描述：
 * 给定一个 n×m
 *  的矩阵，对于 初始矩阵 中所有值为 1
 *  的元素，重置其 所在行列 的所有元素为 0
 * ，最后输出整个修改后的矩阵。
 *<p>
 * 输入：
 * 输入共包含 1+n
 *  行。
 *<p>
 * 第一行包两个整数 n
 *  和 m
 * ， 分别表示矩阵的长和宽，题目保证 2≤n,m≤700
 *  且 4≤n×m≤180000
 * 。
 *<p>
 * 接下来 n
 *  行，每行包含 m
 *  个整数，第 i
 *  行第 j
 *  个整数表示矩阵中坐标 (i,j)
 *  的值 Ai,j
 * ，题目保证 0≤Ai,j≤1e8
 * 。
 *<p>
 * 输出：
 * 输出共包含 n
 *  行，每行包含空格分隔 m
 *  个整数。
 *
 * 第 i
 *  行第 j
 *  个整数表示修改后的矩阵中坐标 (i,j)
 *  的值 Ai,j
 * 。
 *<p>
 * 请注意输出中每行行末最后一个数字后面紧跟换行符，不能包含空格。
 *<p>
 * 样例输入：<p>
 * 3 3<p>
 * 3 4 5<p>
 * 0 1 2<p>
 * 6 7 8<p>
 * 样例输出：<p>
 * 3 0 5<p>
 * 0 0 0<p>
 * 6 0 8<p>
 * 样例输入：<p>
 * 3 4<p>
 * 1 2 3 1<p>
 * 4 5 6 7<p>
 * 8 9 10 11<p>
 * 样例输出：<p>
 * 0 0 0 0<p>
 * 0 5 6 0<p>
 * 0 9 10 0<p>
 * 注释：<p>
 * 关于测试数据：
 *<p>
 * 题目保证，对于 115
 *  的测试数据， n=4,m=4
 * ；
 *<p>
 * 题目保证，对于 13
 *  的测试数据，2≤n,m≤100
 * 。
 *<p>
 * 题目保证，对于 23
 *  的测试数据，2≤n≤100
 *  或 2≤m≤100
 * 。
 * @author: scarborough
 * @datetime: 2025/3/19 - 19:13
 * @status: AC
 */
public class PROB1020 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] arr = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                arr[i][j] = sc.nextInt();
            }
        }
        sc.close();

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(arr[i][j] == 1) {
                    arr[i][j] = 0;
                    for (int k = 0; k < n; k++) {
                        if(arr[k][j] != 1) {
                            arr[k][j] = 0;
                        }
                    }
                    for (int k = 0; k < m; k++) {
                        if(arr[i][k] != 1) {
                            arr[i][k] = 0;
                        }
                    }
                }
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m - 1; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println(arr[i][m-1]);
        }
    }
}
